package com.xyht.sca_s.student_manage_system.modules.assetConsumable.service;

import com.xyht.sca_s.student_manage_system.common.commonReturn.ResponseResult;
import com.xyht.sca_s.student_manage_system.modules.assetConsumable.entity.SmsAssetConsumableInStorageApply;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xyht.sca_s.student_manage_system.modules.assetConsumable.entity.req.SmsAssetConsumableInStorageApplyHistoryReq;
import com.xyht.sca_s.student_manage_system.modules.assetConsumable.entity.req.consumableInStorageApply.SmsAssetConsumableInStorageApplyAllowReq;
import com.xyht.sca_s.student_manage_system.modules.assetConsumable.entity.req.consumableInStorageApply.SmsAssetConsumableInStorageApplyReq;

import javax.servlet.http.HttpServletResponse;
import java.util.concurrent.Future;

/**
 * <p>
 * 低值易耗品入库申请 服务类
 * </p>
 *
 * @author XYHT
 * @since 2023-06-25
 */
public interface SmsAssetConsumableInStorageApplyService extends IService<SmsAssetConsumableInStorageApply> {

    ResponseResult addConsumableInStorageApply(SmsAssetConsumableInStorageApplyReq req, String userId);

    ResponseResult cancelConsumableInStorageApply(SmsAssetConsumableInStorageApplyReq cancelReq, String userId);

    ResponseResult getAssetConsumableInStorageApplyList(String userId, Integer applyType, Integer pageNum, Integer pageSize);

    ResponseResult getAssetConsumableInStorageApplyDetail(String applyId, String userId);

    ResponseResult allowAssetConsumableInStorageApply(SmsAssetConsumableInStorageApplyAllowReq allowReq, String userId);

    Future<ResponseResult> tableDownload(String applyId, HttpServletResponse response);

    Future<ResponseResult> exportAllApplyList(SmsAssetConsumableInStorageApplyHistoryReq historyReq, HttpServletResponse response);

    ResponseResult getAssetConsumableInStorageApplyAllList(Integer allowStatus, String searchStr,String applyName, Integer pageNum, Integer pageSize);

    ResponseResult warningReminder(String searchStr);
}
